A software image is a preinstalled computer system software package. Consumers receive commercially available versions of such packages routinely as an included feature of the computer systems that they purchase. Such software images provide the owners of such computer systems with the immediate capacity to make effective use of their computers. As a result, these systems are highly valued by consumers. Consequently, the development of ever more marketable versions of such software images is pursued by computer system manufacturers.
Conventional methods of creating software images involve the manual Installation of each software component that is included in the images. Such manual methods of creating software images are tedious and time consuming as each piece of software is manually installed on a single computer that contains the image. In addition, the images that are created may not be consistent. This is readily apparent when it is considered that different engineers are likely to install the same software program differently or that the same engineer may install the same software program differently on different systems (or on different occasions for that matter). Moreover, as with any manual process the manual installation of software is prone to errors.
A “build” is a version of a software image. A software image may undergo many iterations or “builds” during the course of its development. It should be appreciated that the different versions that are created need to be tracked so that they do not become confused. Difficulties tracking the software image versions may be compounded by the large number of programs and computer platforms that may be involved in a build. The large number of software types, build versions and computer system platforms that are involved can present challenges that are not easily managed.
The management challenges are especially apparent when considering the manual procedures used to construct the builds. It would not be uncommon for a single computer vendor to have to support some 50 or more different builds considering the different program versions involved and the different computer platforms involved. It should be appreciated that these complications present a significant challenge to the manual performance of the tasks involved in managing successive build images.